Event processing is a process of sensing, manipulating, responding to events and propagating events from an event source to a consumer of the event. Typically, event driven (ED) systems are capable of event processing. An ED system is facilitated and formally represented by means of an Event Processing Network (EPN), which can be represented as a graph having nodes and edges. The EPN consists of a set of Event Processing Agents (EPA) (the nodes) interconnected by communication channels.
Typically in event processing, there are multiple factors that determine the efficiency of the ED system. Some of the factors are, for example, latency, throughput etc. In such ED systems, when a parallel route exists for an event to traverse the EPN, the event passes through all the elements of the parallel branch of the EPN. This may necessitate a user working with the ED system to manage the life cycle of threads and handling synchronization issues that may arise from multiple threads accessing the same data.